﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
//using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace AdatbazisProjekt
{
    public partial class UjTermekHozzaAdas : Form
    {
		// Egy uj termek hozzaadasank megfelelo formot jelenit meg
        FMenu fMenu;
		DataAlkatreszek alkatResz;
        UjTermekHozzadasData termekHozzadas;
		bool Err;

        public UjTermekHozzaAdas(FMenu f)
        {
            try
            {
                Err = false;
                InitializeComponent();
                termekHozzadas = new UjTermekHozzadasData(ref Err);
                fMenu = f;
                if (Err)
                {
                    MessageBox.Show("Hiba az adatagok inicializasa kozben ");
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Hiba a felulet inicializalasa kozben!");
            }
        }

        private void UjTermekHozzaAdas_Load(object sender, EventArgs e)
        {
			alkatResz = new DataAlkatreszek(ref Err);
			comboFeltoltes();
        }

		public void comboFeltoltes()
		{
			// Feltoltjuk az alkatreszeknek meg a gyartonak es katergornak megfelelo comboboxok feltoltese
            try
            {
                Err = false;
                ProcesszorComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
                MerevlemezComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
                KepernyoComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
                VideokartyaComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
                RamComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
                GyartoComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
                KategoriaComboBox.DropDownStyle = ComboBoxStyle.DropDownList; 
                ProcesszorComboBox.DataSource = alkatResz.GetComponentName("Processzorok", ref Err);
                MerevlemezComboBox.DataSource = alkatResz.GetComponentName("Merevlemezek", ref Err);
                KepernyoComboBox.DataSource = alkatResz.GetComponentName("Kepernyok", ref Err);
                VideokartyaComboBox.DataSource = alkatResz.GetComponentName("VideoKartyak", ref Err);
                RamComboBox.DataSource = alkatResz.GetComponentName("RAM", ref Err);
                GyartoComboBox.DataSource = alkatResz.GetGyartok(ref Err);
                KategoriaComboBox.DataSource = termekHozzadas.GetKategoriak();
                if (Err)
                {
                    MessageBox.Show("Hiba az alaktereszek olvasasa kozben!");
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("Hiba a combobox-ok feltoltese kozben, a hiba tipusa :" + e.Message);
            }
		}

        private void HozzaAdasButton_Click_1(object sender, EventArgs e)
        {	
			//Hozzaadjuk az adatbazishoz a kivant uj termeket amennyiben a bemeneti adatok helyesen vannak kitoltve
            bool ok = true;
            if (ujTermekNevTextBox.Text == "")
            {
                MessageBox.Show("Nincs kitolve az uj termek nevere vonatkozo mezo! Kerem toltese ki es probalja ujra.");
                ok = false;
            }
            else
                if (GaranciaTextBox.Text == "")
                {
                    MessageBox.Show("Nincs kitoltve az uj termek garanciajara vonatkozo mezo! Kerem toltse ki es probalja ujra.");
                    ok = false;
                }
                else
                    if (RaktarDbTextBox.Text == "")
                    {
                        MessageBox.Show("Nincs kitoltve az uj termek darabszamara vonatkozo mezo! Kerem toltse ki es probalja ujra.");
                        ok = false;
                    }
                    else termekHozzadas.UjTermekBeszuras(ujTermekNevTextBox.Text, ProcesszorComboBox.SelectedItem.ToString(), MerevlemezComboBox.SelectedItem.ToString(), KepernyoComboBox.SelectedItem.ToString(), VideokartyaComboBox.SelectedItem.ToString(), RamComboBox.SelectedItem.ToString(), GaranciaTextBox.Text, RaktarDbTextBox.Text, GyartoComboBox.SelectedItem.ToString(), KategoriaComboBox.SelectedItem.ToString(), ArTextBox.Text, ref ok);
            if (ok)
            {
                MessageBox.Show("Az uj elem beilesztese sikeres volt!");
                fMenu.Show();
                this.Close();
            }
            else
            {
                MessageBox.Show("Sajnos a beszuras megszakadt egy varatlan hiba miatt, kerem probalja ujra!");
                fMenu.Show();
                this.Close();
            }
        }

        private void MegseButton_Click(object sender, EventArgs e)
        {
			// Visszaterunk a menuben uj termek hozzaadasa nelkul
            fMenu.Show();
            this.Close();
        }

        private void GaranciaTextBox_TextChanged(object sender, EventArgs e)
        {
            int temp;
            if (GaranciaTextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
            {
                try
                {
                    temp = Int16.Parse(GaranciaTextBox.Text);
                }
                catch (Exception)
                {
                    MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum hat szamjegyig! Kerem probalja ujra figyelmesebben");
                    GaranciaTextBox.Text = "";
                }
            }
        }

        private void RaktarDbTextBox_TextChanged(object sender, EventArgs e)
        {
            int temp;
            if (RaktarDbTextBox.Text != "")  // vizsgalat arra szolgal h akkor ne irjunk ki hibat mikor a szoveg a hibauzenet kiirasa utan valtozott "" stringre
            {
                try
                {
                    temp = Int16.Parse(RaktarDbTextBox.Text);
                }
                catch (Exception)
                {
                    MessageBox.Show("Ebbe a mezobe kizarolag szamot irhat, maximum hat szamjegyig! Kerem probalja ujra figyelmesebben");
                    RaktarDbTextBox.Text = "";
                }
            }
        }

        private void MasProcesszorButton_Click(object sender, EventArgs e)
        {	
			// Amennyiben az alktreszhez tartozo comboban nincs szamunkra megfelelo alkatresz a gombra katintva megjeleni egy uj felulet amirol beszurhatunk egyet
            UjAlkatreszBevitel temp = new UjAlkatreszBevitel(this, "Processzor", "Teljesitemeny:", "GHz", "Magok szama:", "darabszam","Szalak szama:","darabszam");
            temp.Show();
        }

        private void MasMerevlemezButton_Click(object sender, EventArgs e)
        {
			// Amennyiben az alktreszhez tartozo comboban nincs szamunkra megfelelo alkatresz a gombra katintva megjeleni egy uj felulet amirol beszurhatunk egyet
            UjAlkatreszBevitel temp = new UjAlkatreszBevitel(this, "Merevlemez", "Kapacitas:", "GB", "", "","","");
            temp.Show();
        }

        private void MasKepernyoButton_Click(object sender, EventArgs e)
        {
			// Amennyiben az alktreszhez tartozo comboban nincs szamunkra megfelelo alkatresz a gombra katintva megjeleni egy uj felulet amirol beszurhatunk egyet
            UjAlkatreszBevitel temp = new UjAlkatreszBevitel(this, "Kepernyo", "Atmero:", "inch", "", "","","");
            temp.Show();
        }

        private void MasVideokartyaButton_Click(object sender, EventArgs e)
        {
			// Amennyiben az alktreszhez tartozo comboban nincs szamunkra megfelelo alkatresz a gombra katintva megjeleni egy uj felulet amirol beszurhatunk egyet
            UjAlkatreszBevitel temp = new UjAlkatreszBevitel(this, "Videokartya", "Teljesitmeny:", "MB", "", "","","");
            temp.Show();
        }

        private void MasRamButton_Click(object sender, EventArgs e)
        {
			// Amennyiben az alktreszhez tartozo comboban nincs szamunkra megfelelo alkatresz a gombra katintva megjeleni egy uj felulet amirol beszurhatunk egyet
            UjAlkatreszBevitel temp = new UjAlkatreszBevitel(this, "RAM", "Meret:", "MB", "Tipus:                     DDR", "","","");
            temp.Show();
        }

        private void MasGyartoButton_Click(object sender, EventArgs e)
        {
			// Amennyiben nincs benne a listaban a kivant gyarto beszurahatunk egy uj gyarto az adatbazisba
            KategoriaGyartoFrom temp = new KategoriaGyartoFrom("Uj gyarto", null, this);
            temp.Show();
        }

        private void MasKategoriaButton_Click(object sender, EventArgs e)
        {
			// Amennyiben nincs a listaban a szamunkra kivant kategoria beszurhatunk egy uj kategoriat az adatbazisba
            KategoriaGyartoFrom temp = new KategoriaGyartoFrom("Uj kategoria", null, this);
            temp.Show();
        }


    }
}
